package com.huangjue.backend.mapper;

import com.huangjue.backend.entity.AiBehavior;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

@Mapper
public interface AiBehaviorMapper {
    
    // 查询所有AI行为记录
    List<AiBehavior> selectAll();
    
    // 根据ID查询
    AiBehavior selectById(@Param("aiBehaviorId") Integer aiBehaviorId);
    
    // 根据AI ID查询
    List<AiBehavior> selectByAiId(@Param("aiId") Integer aiId);
    
    // 根据用户ID查询
    List<AiBehavior> selectByUserId(@Param("userId") Integer userId);
    
    // 根据行为类型查询
    List<AiBehavior> selectByBehaviorType(@Param("behaviorType") String behaviorType);
    
    // 根据时间范围查询
    List<AiBehavior> selectByTimeRange(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
    
    // 根据AI ID和用户ID查询
    List<AiBehavior> selectByAiIdAndUserId(@Param("aiId") Integer aiId, @Param("userId") Integer userId);
    
    // 根据AI ID和时间范围查询
    List<AiBehavior> selectByAiIdAndTimeRange(@Param("aiId") Integer aiId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
    
    // 插入AI行为记录
    int insert(AiBehavior aiBehavior);
    
    // 更新AI行为记录
    int update(AiBehavior aiBehavior);
    
    // 删除AI行为记录
    int deleteById(@Param("aiBehaviorId") Integer aiBehaviorId);
    
    // 统计用户行为数量
    long countByUserId(@Param("userId") Integer userId);
    
    // 统计AI行为数量
    long countByAiId(@Param("aiId") Integer aiId);
    
    // 统计总行为数量
    long countAll();
} 